{#if loadError} {loadError} {:else} {#await currentUserIdentity} Loading user identity ... 60% {:then identity} {@const isOwner = identity && identity.name === data.username} {#if isOwner}

Back to Profile Dark Mode Transparent Background

{/if} {#if editMode && isOwner} {#if error}

{error}

{/if}

{#if selectedBadge} or {/if} Must be full date and time, defaults to now if any fields empty

{/if} {#await badgesPromise} Loading badges ... 40% {:then badgesResponse} {#if badgesResponse} {#await badgesResponse.json()} Loading badges ... 80% {:then ungroupedBadges}
{#if ungroupedBadges === null} {@html nbsp('Loading badges ... 50%')} {:else if ungroupedBadges.length === 0} {@html nbsp('No badges found for this user.')} {:else} {@const groupedBadges = Object.entries(groupBadges(ungroupedBadges))} {#each groupedBadges as [category, badges]}
{category}

{#if groupedBadges[groupedBadges.length - 1][0] !== category}

{/if} {/each} {/if}

{:catch}

Could not parse badges

{/await} {:else} Loading badges ... 20% {/if} {:catch}

Could not fetch badges

{/await} {/await} {/if}